Matthias Clasen [Sat, 14 Mar 2020 01:33:23 +0000 (21:33 -0400)]
x11: Update surface size for popups too
Without this, the back buffers of the wrong size
keep being used, causing flickery misdraws, as
seen when expanding the expander in the popover
in widget-factory.
Timm Bäder [Wed, 19 Feb 2020 07:43:51 +0000 (07:43 +0000)]
Merge branch 'file-filter-name-property' into 'master'
GtkFileFilter: Add a GObject property for the name
See merge request GNOME/gtk!376
Matthias Clasen [Wed, 19 Feb 2020 01:50:49 +0000 (01:50 +0000)]
Merge branch 'icontheme-api' into 'master'
Icontheme api
Closes #2410
See merge request GNOME/gtk!1449
Matthias Clasen [Tue, 18 Feb 2020 05:56:37 +0000 (00:56 -0500)]
icontheme: Update the api
Add properties, and use string arrays instead of lists.
Among other things, this renames gtk_icon_theme_list_icons
to gtk_icon_theme_get_icon_names.
Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2410
Matthias Clasen [Wed, 19 Feb 2020 01:18:04 +0000 (01:18 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
debug: When debug-printing, treat NULL as the default display
See merge request GNOME/gtk!1450
Benjamin Otte [Wed, 19 Feb 2020 00:20:19 +0000 (01:20 +0100)]
debug: When debug-printing, treat NULL as the default display
Otherwise we lose debug prints from all code that allows NULL displays.
Matthias Clasen [Tue, 18 Feb 2020 22:15:56 +0000 (22:15 +0000)]
Merge branch 'wip/otte/dnd' into 'master'
More DND rework
See merge request GNOME/gtk!1445
Emmanuele Bassi [Tue, 18 Feb 2020 10:58:06 +0000 (10:58 +0000)]
Merge branch 'dialog-headerbar-type-annotation' into 'master'
GtkDialog: Add `type Gtk.HeaderBar` annotation to headerbar getter return value
See merge request GNOME/gtk!1447
Sebastian Dröge [Tue, 18 Feb 2020 08:55:31 +0000 (10:55 +0200)]
GtkDialog: Add `type Gtk.HeaderBar` annotation to headerbar getter return value
Benjamin Otte [Tue, 18 Feb 2020 01:58:58 +0000 (02:58 +0100)]
colorbutton: Fix drag source
By running it in the capture phase, it will not be starved for events by
the button's click source and make drags actually start a color drag
operation.
Benjamin Otte [Tue, 18 Feb 2020 01:02:34 +0000 (02:02 +0100)]
Remove gdk_content_provider_new_with_formats()
See the removal of gdk_content_provider_new_with_callback() for a
rationale.
Benjamin Otte [Tue, 18 Feb 2020 01:01:52 +0000 (02:01 +0100)]
tests: Modernize testdnd2
Benjamin Otte [Tue, 18 Feb 2020 00:41:42 +0000 (01:41 +0100)]
dnd: Port the TreeModel machinery to GValue DND
Matthias Clasen [Mon, 17 Feb 2020 22:31:17 +0000 (22:31 +0000)]
Merge branch 'text-emoji-history' into 'master'
text: Treat Emoji insertion like clipboard
See merge request GNOME/gtk!1444
Benjamin Otte [Mon, 17 Feb 2020 03:38:22 +0000 (04:38 +0100)]
placessidebar: Modernize DND
No more shooting pointers through pipes
Benjamin Otte [Mon, 17 Feb 2020 02:58:28 +0000 (03:58 +0100)]
notebook: Use proper DND
Actually use GValues for the DND operation instead of sending GBytes of
pointer addresses through pipes.
This is a bit complicated because we need to special-case rootwindow
drops, because they're handled on the source side, so we need a custom
ContentProvider.
Benjamin Otte [Mon, 17 Feb 2020 02:08:54 +0000 (03:08 +0100)]
notebook: Move dnd scrolling via arrows to own drop target
This removes excess code from the tab dnd machinery
Benjamin Otte [Mon, 17 Feb 2020 02:04:37 +0000 (03:04 +0100)]
dragdest: Handle NULL content formats everywhere
NULL means we don't do content formats checks and accept everything.
We use this for notebook arrows or expanders that react to ongoing
drags.
Benjamin Otte [Mon, 17 Feb 2020 01:21:13 +0000 (02:21 +0100)]
contentprovider: Add a union content provider
Matthias Clasen [Mon, 17 Feb 2020 20:05:09 +0000 (15:05 -0500)]
text: Treat Emoji insertion like clipboard
Enter the Emoji inseration in the undo history.
Also, stop stashing away the selection when we
pop up the Emoji chooser, and use the selection
as-is when we insert the Emoji.
Benjamin Otte [Mon, 17 Feb 2020 01:20:43 +0000 (02:20 +0100)]
placessidebar: Don't claim to support text dnd
Because you don't. And never did.
Benjamin Otte [Sun, 16 Feb 2020 18:52:17 +0000 (19:52 +0100)]
dragdest: Make gtk_drop_target_new() args be transfer full
Saves tons of code.
Benjamin Otte [Sun, 16 Feb 2020 17:48:45 +0000 (18:48 +0100)]
colorbutton, colorswatch: Simplify DND
- Use GDK_TYPE_RGBA and let GDK do the conversion from
application-x-color
- Don't do extra mime type checks when accept() does that for us already
Benjamin Otte [Sun, 16 Feb 2020 17:43:45 +0000 (18:43 +0100)]
dragdest: Simplify function
Make it obvious that the functions checks one condition and then the
other.
Benjamin Otte [Sun, 16 Feb 2020 17:32:42 +0000 (18:32 +0100)]
dnd: simplify code
The old code did mimetype checks everywhere when type compatibility has
since been moved to the GtkDropTarget::accept signal.
So the code can now just assume a compatible mime type exists.
Benjamin Otte [Sun, 16 Feb 2020 15:22:37 +0000 (16:22 +0100)]
dnd: Remove gdk_content_provider_new_with_callback()
Content providers are meant to be immutable, apart from very special
cases, but in those cases they need to emit
gdk_content_provider_content_changed().
Having a constructor that just uses a get_func invites abuse of this
by not making developers aware of those requirments.
In fact, all users in GTK failed to do this.
Instead, code should use the GtkDragSource::prepare signal to create
content providers when needed.
The same problem exists with gdk_content_provider_new_with_formats(),
but this commit doesn't touch that.
Benjamin Otte [Sun, 16 Feb 2020 13:29:22 +0000 (14:29 +0100)]
testdnd3: Use GValue dnd
Benjamin Otte [Sun, 16 Feb 2020 13:24:03 +0000 (14:24 +0100)]
contentprovider: Add gdk_content_provider_new_typed()
Gets around the boilerplate required to create and initialize a GValue
by having this function doing it via G_VALUE_COLLECT().
Benjamin Otte [Sun, 16 Feb 2020 13:14:27 +0000 (14:14 +0100)]
wayland: Destroy the offer on gdk_drop_finish()
Otherwise the compositor won't be aware the dnd failed and will in turn
not notify the drag source.
Benjamin Otte [Sun, 16 Feb 2020 05:08:27 +0000 (06:08 +0100)]
drop: Add a state machine for tracking events
Benjamin Otte [Sun, 16 Feb 2020 19:05:05 +0000 (20:05 +0100)]
widget: Fix namespacing problem
In Vala and JS at least, gtk_widget_get_css_name() and
gtk_widget_class_get_css_name() are resolved to
GtkWidget.get_css_name().
To avoid this problem, we rename the class version.
Benjamin Otte [Sun, 16 Feb 2020 18:57:45 +0000 (19:57 +0100)]
widget: Fix typos for css-clases property
Benjamin Otte [Sat, 15 Feb 2020 23:45:25 +0000 (23:45 +0000)]
Merge branch 'wip/otte/dnd' into 'master'
some DND fixes
See merge request GNOME/gtk!1440
Benjamin Otte [Sat, 15 Feb 2020 20:07:26 +0000 (21:07 +0100)]
tests: Do proper local DND
Just transfer GValues.
Benjamin Otte [Sat, 15 Feb 2020 20:04:57 +0000 (21:04 +0100)]
wayland: Use a magic mime type for local DND
Otherwise the compositor gets all confused when it's trying to make
drag happen but we know it's not going to happen.
After all, we exchange data behind its back, we just need to keep it
informed.
Benjamin Otte [Sat, 15 Feb 2020 19:26:55 +0000 (20:26 +0100)]
dragdest: Use format matching APIs
Benjamin Otte [Sat, 15 Feb 2020 19:02:44 +0000 (20:02 +0100)]
drop: Ensure all relevant formats are available
1. GdkDrop does deserialization, so add the deserialize formats
2. If the drop is local, we can copy straight from the drag, so we can
also copy all its formats. This fixes cases where the backend would
drop formats it doesn't support.
Timm Bäder [Sat, 15 Feb 2020 10:19:25 +0000 (11:19 +0100)]
calendar: Emit {next,prev}-{month,year} signals
Fixes #833
Timm Bäder [Sat, 15 Feb 2020 10:10:19 +0000 (11:10 +0100)]
widget: Use get_css_name() in get_property()
Instead of reimplementing it there.
Timm Bäder [Sat, 15 Feb 2020 09:45:33 +0000 (10:45 +0100)]
Adwaita: Add focus outlines back to scale troughs
Fixes #189
Timm Bäder [Sat, 15 Feb 2020 09:25:41 +0000 (10:25 +0100)]
coloreditor: Scale h value to 360
Fixes #1321
Timm Bäder [Sat, 15 Feb 2020 09:14:13 +0000 (10:14 +0100)]
range: Avoid rounding errors when allocating highlight
Fixes #2438
Timm Bäder [Sat, 15 Feb 2020 08:55:27 +0000 (09:55 +0100)]
widget: Add css-classes property
Mirroring the values added and removed via {add,remove}_css_class().
Timm Bäder [Fri, 14 Feb 2020 17:25:01 +0000 (18:25 +0100)]
infobar: Remove _get_{action,content}_area()
Accessors like these are weird to have and we can add widgets to the
content area via gtk_container_add() as well as add widgets to the
action area via gtk_info_bar_add_action_widget().
Timm Bäder [Fri, 14 Feb 2020 17:22:59 +0000 (18:22 +0100)]
Remove gtk_info_bar_get_content_area() uses
We can just add() to the info bar directly.
Timm Bäder [Fri, 14 Feb 2020 17:14:33 +0000 (18:14 +0100)]
testinfobar: Stop using gtk_info_bar_get_content_area()
We have an easier way of adding widgets to the content area of an
infobar: Just gtk_container_add() them like usual.
Timm Bäder [Fri, 14 Feb 2020 17:06:39 +0000 (18:06 +0100)]
infobar: Don't store close button visibility separately
We can already set and query that value via
gtk_widget_{get,set}_visible() on the close button.
Timm Bäder [Fri, 14 Feb 2020 17:00:48 +0000 (18:00 +0100)]
actionbar: Use a bin layout
Timm Bäder [Thu, 13 Feb 2020 17:40:20 +0000 (18:40 +0100)]
calendar: Add style class to today's label
Add the .today style class to the label indicating the current day.
Fixes #230
Timm Bäder [Thu, 13 Feb 2020 16:53:42 +0000 (17:53 +0100)]
calendar: Document style classes
Fixes #790
Matthias Clasen [Fri, 14 Feb 2020 21:46:43 +0000 (16:46 -0500)]
events: Make proximity and scroll events have tools
The Wayland backend tries to set device tools on these
events, and it was just an oversight that they don't
carry them.
Benjamin Otte [Fri, 14 Feb 2020 20:42:11 +0000 (20:42 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
Drop GTK_WINDOW_POPUP
See merge request GNOME/gtk!1437
Matthias Clasen [Mon, 30 Dec 2019 06:24:05 +0000 (01:24 -0500)]
Drop gdk_surface_new_temp
GTK is not using this API anymore, and we want
to consolidate our surface types to just toplevels
and popups.
Matthias Clasen [Mon, 30 Dec 2019 06:23:26 +0000 (01:23 -0500)]
testsuite: Stop using gdk_surface_new_temp
We can just use regular toplevels here.
Benjamin Otte [Fri, 14 Feb 2020 20:13:42 +0000 (21:13 +0100)]
window: Remove GtkWindowType and window->type
And remove code that was making decisions on the type and just use
the part for toplevels.
Benjamin Otte [Fri, 14 Feb 2020 20:15:45 +0000 (21:15 +0100)]
testsuite: Use GtkTextDirection instead of GtkWindowType
GtkWindowType is aout to be dropped, so use another enum for the enum
tests - one that is likely to survive for a long time.
Benjamin Otte [Fri, 14 Feb 2020 19:57:53 +0000 (20:57 +0100)]
textview: Fix docs typo
Benjamin Otte [Fri, 14 Feb 2020 19:55:36 +0000 (20:55 +0100)]
window: Remove type argument from gtk_window_new()
Benjamin Otte [Fri, 14 Feb 2020 19:32:10 +0000 (20:32 +0100)]
testsuite: Replace popups with toplevels
The tests do not depend on the window being a popup.
Benjamin Otte [Fri, 14 Feb 2020 18:32:50 +0000 (19:32 +0100)]
builder: Use different construct-only property
The window type is going away, so use the css name instead.
Benjamin Otte [Fri, 14 Feb 2020 19:25:00 +0000 (20:25 +0100)]
widget: Add gtk_widget_get_css_name() API
Benjamin Otte [Fri, 14 Feb 2020 18:48:58 +0000 (19:48 +0100)]
testsuite: Remove popup property from simplify tools
I'm not even sure a popup GtkAssistant should be a thing...
Benjamin Otte [Fri, 14 Feb 2020 18:27:17 +0000 (19:27 +0100)]
testsuite: Turn all CSS test ui files into regular windows
Use undecorated windows instead of popups.
Benjamin Otte [Fri, 14 Feb 2020 18:25:23 +0000 (19:25 +0100)]
testsuite: Make a11y tests use regular windows
Benjamin Otte [Fri, 14 Feb 2020 17:12:17 +0000 (17:12 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
reftests: Change popup windows to non-decorated windows
See merge request GNOME/gtk!1435
Benjamin Otte [Fri, 14 Feb 2020 16:54:38 +0000 (17:54 +0100)]
reftests: Change popup windows to non-decorated windows
This allows getting rid of popup windows.
Matthias Clasen [Fri, 14 Feb 2020 13:47:36 +0000 (08:47 -0500)]
Merge branch 'zhaoqiang/gtk-To_avoid_compiler_warning'
Matthias Clasen [Fri, 14 Feb 2020 13:19:42 +0000 (13:19 +0000)]
Merge branch 'master-subtract-base-size' into 'master'
gdk: Subtract base size when checking aspect ratio
See merge request GNOME/gtk!1331
Mohammed Sadiq [Fri, 14 Feb 2020 02:39:21 +0000 (02:39 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
slicelistmodel: Fix two wrong computations
See merge request GNOME/gtk!1433
Benjamin Otte [Fri, 14 Feb 2020 02:13:49 +0000 (03:13 +0100)]
slicelistmodel: Fix two wrong computations
Both of those are thinkos during math.
Found by Mohammed Sadiq.
Testcases triggering both have been added.
Matthias Clasen [Fri, 14 Feb 2020 02:14:01 +0000 (21:14 -0500)]
Force-create style contexts in realize
This is necessary as long as style contexts are
required for proper css change tracking.
Fixes #2435
Emmanuele Bassi [Thu, 13 Feb 2020 19:53:33 +0000 (19:53 +0000)]
Merge branch 'master' into 'master'
Fixed OpenGL extension detection for extensions promoted to OpenGL core.
Closes #2428
See merge request GNOME/gtk!1424
David Hogan [Wed, 12 Feb 2020 20:55:59 +0000 (07:55 +1100)]
Fix detection of OpenGL 3.3 core GL_ARB_timer_query.
Some systems (notably macOS) will not allow enumeration of an extension that has been promoted to core OpenGL for context in use. This change assumes that GL_ARB_timer_query is available on OpenGL 3.3+.
I could not find definitive information on whether GL_ARB_debug_output or GL_KHR_debug have been added to core. Other extensions in use were addressed by https://gitlab.gnome.org/GNOME/gtk/merge_requests/1422 .
David Hogan [Wed, 12 Feb 2020 19:52:24 +0000 (06:52 +1100)]
Fixed OpenGL extension detection for extensions promoted to OpenGL core.
For a given OpenGL context, macOS in particular does not support enumeration / detection of OpenGL features that have been promoted to core OpenGL functionality. It is possible other drivers are the same. This change assumes support for GL_ARB_texture_non_power_of_two with OpenGL 2.0+, GL_ARB_texture_rectangle with OpenGL 3.1+ and GL_EXT_framebuffer_blit with OpenGL 3.0+. I failed to find definitive information on whether GL_GREMEDY_frame_terminator has been promoted to OpenGL core, or whether GL_ANGLE_framebuffer_blit or GL_EXT_unpack_subimage have been promoted to core in OpenGL ES. This change results in a significant GtkGLArea performance boost on macOS.
Closes #2428
Emmanuele Bassi [Thu, 13 Feb 2020 18:10:29 +0000 (18:10 +0000)]
Merge branch 'ci-flatpak' into 'master'
CI pipeline changes for Flatpak jobs
See merge request GNOME/gtk!1429
Emmanuele Bassi [Thu, 13 Feb 2020 17:10:19 +0000 (17:10 +0000)]
ci: Remove G_MESSAGES_DEBUG
We don't need all the debugging messages.
Emmanuele Bassi [Thu, 13 Feb 2020 17:09:35 +0000 (17:09 +0000)]
ci: Allow flatpak jobs to fail
We have more accurate CI jobs, now; the Flatpak jobs are nice to have.
Matthias Clasen [Thu, 13 Feb 2020 16:38:41 +0000 (16:38 +0000)]
Merge branch 'gi-fixes' into 'master'
Various fixes for documentation and introspectable API
See merge request GNOME/gtk!1427
Matthias Clasen [Thu, 13 Feb 2020 16:21:15 +0000 (11:21 -0500)]
Make release builds mandatory for ci
The tests are now passing in release builds, lets keep
it that way.
Matthias Clasen [Thu, 13 Feb 2020 15:56:26 +0000 (10:56 -0500)]
testsuite: Handle icontheme test better
Skip just the failing tests in release builds.
Matthias Clasen [Thu, 13 Feb 2020 15:42:21 +0000 (10:42 -0500)]
gsk: Fix the compiler warning differently
Emmanuele Bassi [Thu, 13 Feb 2020 15:04:04 +0000 (15:04 +0000)]
Merge branch 'report-fixes' into 'master'
Fixes for the CI test reports
See merge request GNOME/gtk!1426
Emmanuele Bassi [Thu, 13 Feb 2020 14:45:08 +0000 (14:45 +0000)]
ci: Use per-suite anchors
Anchors are global, so they need to be namespaced.
Emmanuele Bassi [Thu, 13 Feb 2020 14:26:40 +0000 (14:26 +0000)]
ci: Rearrange the results in the HTML report
Move the failures up top, so they stand out.
Emmanuele Bassi [Thu, 13 Feb 2020 14:23:59 +0000 (14:23 +0000)]
ci: Fix the HTML anchor in the report
Emmanuele Bassi [Thu, 13 Feb 2020 13:56:33 +0000 (13:56 +0000)]
ci: Use result instead of exit code in the JUnit report
We have a result code coming from Meson which is more accurate than just
looking at the exit code of the unit.
Emmanuele Bassi [Thu, 13 Feb 2020 13:54:22 +0000 (13:54 +0000)]
ci: Unexpected passes are failures
List them as such in our reports.
Emmanuele Bassi [Thu, 13 Feb 2020 13:54:02 +0000 (13:54 +0000)]
ci: Put the branch name in the HTML header
Emmanuele Bassi [Thu, 13 Feb 2020 13:52:57 +0000 (13:52 +0000)]
ci: Move HTML report meta from header to article
Makes the bar smaller.
Emmanuele Bassi [Thu, 13 Feb 2020 14:04:41 +0000 (14:04 +0000)]
ci: Re-enable ccache
Emmanuele Bassi [Tue, 11 Feb 2020 17:34:09 +0000 (17:34 +0000)]
Remove gtk_style_context_get_parent()
The function was declared and mentioned in the documentation, but it has
been removed in commit
416182a20d062d5865916f86909354ec85d00dd1.
Emmanuele Bassi [Tue, 11 Feb 2020 17:29:56 +0000 (17:29 +0000)]
gi: Skip gtk_custom_layout_new()
The whole GtkCustomLayout class is mostly a C convenience API, and
there's no reason why high level languages should use it.
Emmanuele Bassi [Tue, 11 Feb 2020 17:28:18 +0000 (17:28 +0000)]
Fix the function name in the gtk-doc stanza
The documentation is still referring to the old function's name.
Emmanuele Bassi [Tue, 11 Feb 2020 17:26:51 +0000 (17:26 +0000)]
Match argument name between declaration and definition
Otherwise the documentation and the introspection data will complain.
Emmanuele Bassi [Tue, 11 Feb 2020 17:25:44 +0000 (17:25 +0000)]
docs: Match the argument name with its declaration
Emmanuele Bassi [Tue, 11 Feb 2020 17:24:01 +0000 (17:24 +0000)]
Add a notify function to GdkContentProvider
The callback-based content providers need a GDestroyNotify function to
free the data passed to them on construction, otherwise they are going
to leak.
Matthias Clasen [Thu, 13 Feb 2020 14:39:27 +0000 (09:39 -0500)]
Remove border-half-pixel reftest from xfail
It passes both locally and on ci now.
Matthias Clasen [Thu, 13 Feb 2020 13:43:59 +0000 (13:43 +0000)]
Merge branch 'wip/otte/no-clip-on-draw' into 'master'
Various fixes to rendernode drawing with Cairo
See merge request GNOME/gtk!1425
Benjamin Otte [Wed, 12 Feb 2020 22:45:51 +0000 (23:45 +0100)]
gdk: Remove gdk_cairo_get_clip_rectangle()
The function is fundamentally broken for unbounded surfaces.
If a surface is unbounded, we cannot represent this as a
cairo_rectangle_int_t, and using the return value doesn't work because
it's already used for something else.
In GTK3, unbounded surfaces aren't a problem, but GTK4 uses recording
surfaces.
So better remove that function before we keep using it and using it
wrong.
Benjamin Otte [Thu, 13 Feb 2020 01:48:19 +0000 (02:48 +0100)]
cairoblur: Get rid of gdk_cairo_get_clip_rectangle() call
It's about to be removed.